package com.facebook.app.client;

import java.util.List;
import java.util.Set;

import com.facebook.app.shared.clustering.Clusterable;
import com.facebook.app.shared.facebookData.FacebookFriend;
import com.facebook.app.shared.facebookData.FacebookLike;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("facebookService")
public interface FacebookService extends RemoteService {
	
	Void deleteDataFromTheStore();
	
	FacebookFriend[] importFriends(String accessToken);
	
	Void importLikeData(FacebookFriend[] friends, String accessToken);
	
	List<Clusterable> prepareClustering(FacebookFriend[] allFriends);
	
	List<Clusterable> initiateClustering(ClusteringMethod clusteringMethod, List<Clusterable> clusterElements);
	
	Set<FacebookLike> importLikesForFriends(List<FacebookFriend> friends, String accessToken);
	
}
